﻿/*
 *  RacerLib - XNA Racing Game Level and Tile Management Library
 * 
 *  Copyright (C) 2009 Sebastian Schäfer
 *  
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation; version 2 of the License.
 *  
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *  
 *  You should have received a copy of the GNU General Public License 
 *  along with this program; if not, see <http://www.gnu.org/licenses/>.
 */
namespace gdv.VCPR.Racer
{
    /// <summary>
    /// The flags of a tiletype
    /// </summary>
    public enum ETileTypeFlags : int
    {
        /// <summary>
        /// A race starts here 
        /// </summary>
        Start,  // 1
        /// <summary>
        /// A race ends here
        /// </summary>
        Goal,   //2
        /// <summary>
        /// Checkpoints
        /// </summary>
        Checkpoint, //4

        /// <summary>
        /// Straight road
        /// </summary>
        Straight,   //8
        /// <summary>
        /// Small (1 tile sized) curve
        /// </summary>
        CurveSmall, //16

        /// <summary>
        /// Flat roadpiece
        /// </summary>
        Flat,       //32
        /// <summary>
        /// Ramp to go to a higher (or lower) level
        /// </summary>
        Ramp,       //64
        /// <summary>
        /// Tile that goes from flat track to tilted track left
        /// </summary>
        TiltLeft,       //128
        /// <summary>
        /// Tile that goes from flat track to tilted track right
        /// </summary>
        TiltRight,       //256
        /// <summary>
        /// A left tilted roadsegment
        /// </summary>
        TiltedLeft,     //512
        /// <summary>
        /// A right tilted roadsegment
        /// </summary>
        TiltedRight,     //1024
        /// <summary>
        /// A tunneled roadpiece
        /// </summary>
        Tunneled,   //2048

        /// <summary>
        /// Tile has a border
        /// </summary>
        Border, // 4096
        /// <summary>
        /// Tile is a booster
        /// </summary>
        Boost, // 8192
        /// <summary>
        /// T-type junction
        /// </summary>
        Junction // 16384
    }

    /// <summary>
    /// The orientation of a tile
    /// </summary>
    public enum ETileOrientation
    {
        /// <summary>
        /// Face upward
        /// </summary>
        North,
        /// <summary>
        /// Face right
        /// </summary>
        East,
        /// <summary>
        /// Face downward
        /// </summary>
        South,
        /// <summary>
        /// Face left
        /// </summary>
        West
    }


}